/**
 * 
 */
package leetCode;

/**
 * @author zhongfang
 *
 */
public class NonnegativeIntegerswithoutConsecutiveOnes {
    public static int findIntegers(int num) {
    	int[] dp=new int[31];
    	dp[0]=dp[1]=1;
    	for (int i = 2; i < dp.length; i++) {
    		for (int j = 0; j < i-1; j++) {
				dp[i]+=dp[j];
			}
		}

    	
    	String string=Integer.toBinaryString(num);
    	int len=string.length();
    	int result=0;
//    	for (int i = 0; i < len; i++) {
//			if(string.charAt(i)=='1'){
//				result+=dp[len-i];
//			}
//		}
//    	
    	for (int i = 0; i <= len; i++) {
			result+=dp[i];
		}
        return result;
    }
	public static void main(String[] args) {
		System.out.println(findIntegers(5));
	}
}
